package com.zhn;

import java.util.LinkedList;
import java.util.Queue;

/**
 * 给定一个二叉树 root ，返回其最大深度。
 *
 * 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
 */
public class MaxDepth {
    public int maxDepth(TreeNode root) {
        if(root == null){
            return 0;
        }
        Queue<TreeNode> que = new LinkedList<>();
        que.add(root);
        int count = 0;
        while(!que.isEmpty()){
            count++;
            int len = que.size();
            while(len-- > 0){
                TreeNode poll = que.poll();
                if(poll.left != null) que.add(poll.left);
                if(poll.right != null)que.add(poll.right);
            }
        }
        return count;
    }
}
